﻿using Prism.Events;
using Prism.Ioc;
using System.Configuration;
using System.Data;
using System.Windows;

namespace Zhy.MvvmBaseObject
{
    /// <summary>
    /// 需要删除：Application继承
    /// 需要从写：CreateShell和RegisterTypes两个方法
    /// 如果编译不过可以继承这个类：PrismApplication
    /// </summary>
    public partial class App
    {
        public App()
        {
            // 当非App启动的时候，可以使用PrismBootstrapper来处理
            //new Startup().Run(); // 此处模拟非APP启动程序。
        }

        /// <summary>
        /// 提供主窗口的对象
        /// </summary>
        /// <returns></returns>
        /// <exception cref="NotImplementedException"></exception>
        protected override Window CreateShell()
        {
            // 使用静态的方式注册消息总线对象 - 这样就可以不需要向页面注入了
            Messenger.Defualt = Container.Resolve<IEventAggregator>();

            new SubWindow().Show(); // 子页面 - 临时写的


            // 注册MainViewModel对象实例
            // 方式一
            //var ea = Container.Resolve<IEventAggregator>();
            //return new MainWindow(ea);
            // 方式二  简化写法 - 常用方式
            return Container.Resolve<MainWindow>();


            //return new MainWindow() { Title = "Prism Start" };
        }

        /// <summary>
        /// 业务中所有需要注入的对象，在这个方法里注册 
        /// </summary>
        /// <param name="containerRegistry"></param>
        /// <exception cref="NotImplementedException"></exception>
        protected override void RegisterTypes(IContainerRegistry containerRegistry)
        {

        }
    }

}
